// ===================================================
// 请将下面的代码复制到浏览器控制台执行
// 在报销申请列表页面按 F12 打开控制台，粘贴并回车
// ===================================================

console.log('========== 报销申请修改按钮排查 ==========');

// 1. 检查当前用户信息
console.log('\n【1. 当前用户信息】');
try {
  const userId = this.$store.getters.userId;
  const userName = this.$store.getters.name;
  const roles = this.$store.getters.roles;
  console.log('用户ID:', userId, typeof userId);
  console.log('用户名:', userName);
  console.log('角色:', roles);
} catch(e) {
  console.error('获取用户信息失败:', e.message);
}

// 2. 检查报销列表数据
console.log('\n【2. 报销列表数据】');
try {
  if (this.reimbursementList) {
    console.log('列表记录数:', this.reimbursementList.length);
    
    // 显示每条记录的关键信息
    this.reimbursementList.forEach((item, index) => {
      console.log(`\n记录 ${index + 1}:`, {
        id: item.id,
        申请人: item.applicantName,
        申请人ID: item.applicantId,
        申请人ID类型: typeof item.applicantId,
        状态: item.status,
        状态类型: typeof item.status,
        状态文本: this.getStatusLabel(item.status)
      });
    });
  } else {
    console.error('reimbursementList 未定义');
  }
} catch(e) {
  console.error('获取列表数据失败:', e.message);
}

// 3. 检查 canEdit 方法
console.log('\n【3. canEdit 方法测试】');
try {
  if (this.reimbursementList && this.reimbursementList.length > 0) {
    const currentUserId = this.$store.getters.userId;
    
    this.reimbursementList.forEach((row, index) => {
      const status = Number(row.status);
      const applicantId = Number(row.applicantId);
      const canEditStatus = [0, 1, 3, 4].includes(status);
      const isOwner = applicantId === currentUserId;
      const result = canEditStatus && isOwner;
      
      console.log(`\n记录 ${index + 1} (ID: ${row.id}):`, {
        状态值: status,
        申请人ID: applicantId,
        当前用户ID: currentUserId,
        '状态可编辑?': canEditStatus,
        '是申请人?': isOwner,
        '显示修改按钮?': result ? '✅ 是' : '❌ 否'
      });
      
      if (!result) {
        if (!canEditStatus) {
          console.warn(`  → 原因: 状态 ${status} 不允许编辑（只允许 0,1,3,4）`);
        }
        if (!isOwner) {
          console.warn(`  → 原因: 申请人ID (${applicantId}) ≠ 当前用户ID (${currentUserId})`);
        }
      }
    });
  }
} catch(e) {
  console.error('测试 canEdit 方法失败:', e.message);
  console.log('尝试调用 canEdit:', typeof this.canEdit);
}

// 4. 检查 canEdit 方法是否存在
console.log('\n【4. 方法检查】');
try {
  console.log('canEdit 方法:', typeof this.canEdit);
  console.log('canDelete 方法:', typeof this.canDelete);
  console.log('checkStatus 方法:', typeof this.checkStatus);
} catch(e) {
  console.error('检查方法失败:', e.message);
}

// 5. 临时修复测试（如果 applicantId 确实有问题）
console.log('\n【5. 临时修复建议】');
console.log('如果上面显示"不是申请人"，可以执行以下代码临时测试：');
console.log('将第一条记录的 applicantId 改为当前用户ID：');
console.log(`this.reimbursementList[0].applicantId = ${this.$store.getters.userId}`);

console.log('\n========== 排查完成 ==========');
console.log('请将上面的输出截图并发送');

